import AMapLoader from '@amap/amap-jsapi-loader'

export function loadMap () {
  return new Promise((resolve, reject) => {
    AMapLoader.load({
      key: '9caaa0fcd0c9dc1e6cfe42de987d117e', // 首次调用 load 时必填
      version: '2.0', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
      plugins: ['AMap.AutoComplete', 'AMap.PlaceSearch', 'AMap.Geolocation'], // 加载地图插件
      AMapUI: {
        // 是否需要去加载 AMapUI，缺省则不加载
        version: '1.1', // AMapUI 缺省 1.1
        plugins: ['control/BasicControl'] // 需要加载的 AMapUI ui插件
      },
      Loca: {
        // 是否加载 Loca， 缺省不加载
        version: '2.0' // Loca 版本，缺省 1.3.2
      }
    })
      .then((AMap) => {
        resolve(AMap)
      })
      .catch((err) => {
        reject(err)
      })
  })
}
// 获取经纬度信息
export function getGeolocation () {
  // eslint-disable-next-line no-async-promise-executor
  return new Promise(async (resolve, reject) => {
    const AMap = await loadMap()
    const geolocation = new AMap.Geolocation({
      // 是否使用高精度定位，默认：true
      enableHighAccuracy: true,
      // 设置定位超时时间，默认：无穷大
      timeout: 10000,
      // 是否使用坐标偏移，取值true:为高德地图坐标，取值false:为浏览器定位坐标
      convert: true
    })
    geolocation.getCurrentPosition(function (status, result) {
      if (status === 'complete') {
        resolve(result)
      } else {
        resolve(result)
      }
    })
  })
}
